/* --------------------------------------------------- ABM NOTIFICACIONES----------------------------------------------------------------*/
$(document).ready(function(){
	var oTable1 = $('#sample-table-2').dataTable({
		//Permite o no guardar el numero de pagina que estaba seleccionada mediante una cookie y al recargar no se pierde la seleccion
		"bStateSave":true,
		//Permite poner los elementos del combo para cambiar la cantidad de filas a visualizar
		"aLengthMenu": [[30, 10, 25, -1], [30, 10, 25, "Todos"]],
		//Cantidad de filas de la tabla por pagina
		"iDisplayLength":30,
		//Ordena las filas por el valor de la columna n de forma ascendente o descendente. La columna inicial es la 0
		"aaSorting": [[ 1, "asc" ]],
		//Para que los mensajes se muestren en español
		"oLanguage": {
			"sProcessing":   "Procesando...",
			"sLengthMenu":   "Mostrar _MENU_ registros",
			"sZeroRecords":  "No se encontraron resultados",
			"sInfo":         "Mostrando desde _START_ hasta _END_ de _TOTAL_ registros",
			"sInfoEmpty":    "Mostrando desde 0 hasta 0 de 0 registros",
			"sInfoFiltered": "(filtrado de _MAX_ registros en total)",
			"sInfoPostFix":  "",
			"sSearch":       "Buscar:",
			"sUrl":          "",
			"oPaginate": {
				"sFirst":    "Primero",
				"sPrevious": "Anterior",
				"sNext":     "Siguiente",
				"sLast":     "&Uacute;ltimo"
			}
		},
		
		"aoColumns": [
		  { "bSortable": false }, { "bSortable": true }, { "bSortable": true }, { "bSortable": false }, { "bSortable": true }, { "bSortable": true }, { "bSortable": true },
		  { "bSortable": true }
		]
	});
	
	$('table th input:checkbox').on('click' , function(){
		var that = this;
		$(this).closest('table').find('tr > td:first-child input:checkbox')
		.each(function(){
			this.checked = that.checked;
			$(this).closest('tr').toggleClass('selected');
		});
	});
});

//*Este metodo se llama cuando en el metodo consultar registros se cambia la seleccion en el filtro*/
function filtrarNotificaciones(url){
	var cicloLectivo = document.getElementById("cicloLectivo");
		
	window.location = url + "/" + cicloLectivo.value + ".html";
}

/*Este metodo se llama cuando en el metodo consultar notificaciones se aprieta el boton eliminar de cada registro*/
function eliminarNotificacion(url, nombre){
	var resp = confirm("Realmente desea eliminar a la notificaci\u00f3n: '"+nombre+"'?");
	if(resp == true){
		$("#cuerpo").load(url, function(){});
	}
}

//*Este metodo se llama cuando en el metodo crear registro se cambia la seleccion en el campo alcance general*/
function actualizarAlcanceParticular(url){
	var alcanceGeneral = document.getElementById("alcanceGeneral");
	$("#alcanceParticular").load(url + "/" + alcanceGeneral.value);	
}

//*Este metodo se llama cuando en el metodo crear registro se aprieta agregar destinatario*/
function agregarDestinatario(url){	
	var alcanceGeneral = document.getElementById("alcanceGeneral");
	var alcanceParticular = document.getElementById("alcanceParticular");
	
	if(alcanceGeneral.value!="0" && alcanceParticular.value!="0"){
		//Enviamos los datos al servidor para que se procese la transaccion
		$("#destinatarios").load(url + "/" + alcanceGeneral.value + "/" + alcanceParticular.value);	
		
		//Inicializamos todos campos a vacios.
		alcanceGeneral.value="0";
		alcanceParticular.value="0";
		
		$('#alcanceParticular').html('');
		$('#alcanceParticular').append('<option value="0">Seleccionar</option>');
		
		//Si habia algun campo marcado como incompleto lo ponemos a la normalidad		
		$("#campoDestinatarios").removeClass("has-error");
		$("#campoAlcanceGeneral").removeClass("has-error");
		$("#campoAlcanceParticular").removeClass("has-error");
		
		//Le damos el foco al primer campo a completar
		$("#alcanceGeneral").focus();
	}else{
		alert("Por favor, seleccione todos los datos del destinatario que desea agregar.");
		
		//Marcamos todos los campos imcompletos para que sea mas facil de visualizar.
		if(alcanceGeneral.value == "0") $("#campoAlcanceGeneral").addClass("has-error"); else $("#campoAlcanceGeneral").removeClass("has-error");
		if(alcanceParticular.value == "0") $("#campoAlcanceParticular").addClass("has-error"); else $("#campoAlcanceParticular").removeClass("has-error");	
	}
}

/*Este metodo se llama cuando en el metodo crear registro se aprieta eliminar destinatario*/
function eliminarDestinatario(url){	
	var destinatarios = document.getElementById("destinatarios");
		
	if(destinatarios.value!=""){
		//Enviamos los datos al servidor para que se procese la transaccion
		$("#destinatarios").load(url + "/" + destinatarios.value);
		
		//Si habia algun campo marcado como incompleto lo ponemos a la normalidad		
		$("#campoDestinatarios").removeClass("has-error");
				
		//Le damos el foco al primer campo a completar
		$("#destinatarios").focus();
	}else{
		alert("Por favor, seleccione el destinatario que desea eliminar.");
		
		//Marcamos todos los campos imcompletos para que sea mas facil de visualizar.
		if(destinatarios.value == "") $("#campoDestinatarios").addClass("has-error"); else $("#campoDestinatarios").removeClass("has-error");
	}
}

//Este metodo se llama cuando se tiene que limpiar el formulario
function limpiarCampos(){
	var fechaPublicacion = document.getElementById("fechaPublicacion");	
	var tipoNotificacion = document.getElementById("tipoNotificacion");	
	var titulo = document.getElementById("titulo");	
	var descripcion = document.getElementById("descripcion");
	var archivo = document.getElementById("archivo");
	var estado = document.getElementById("estado");
	
	var alcanceGeneral = document.getElementById("alcanceGeneral");
	var alcanceParticular = document.getElementById("alcanceParticular");
	
	//Inicializamos todos campos a vacios.
	tipoNotificacion.value = "0";	
	titulo.value = "";
	descripcion.value = "";
	archivo.value="";
	estado.value="1";
	
	alcanceGeneral.value="0";
	alcanceParticular.value="0";	
	$('#alcanceParticular').html('');
	$('#alcanceParticular').append('<option value="0">Seleccionar</option>');
		
	//Si habia algun campo marcado como incompleto lo ponemos a la normalidad		
	$("#campoFechaPublicacion").removeClass("has-error");
	$("#campoTipoNotificacion").removeClass("has-error");
	$("#campoTitulo").removeClass("has-error");
	
	$("#campoAlcanceGeneral").removeClass("has-error");
	$("#campoAlcanceParticular").removeClass("has-error");
			
	//Le damos el foco al primer campo a completar
	$("#tipoNotificacion").focus();
}

//Este metodo se llama cuando se tiene que crear una notificacion nueva
function crearNotificacion(){
	var cicloLectivo = document.getElementById("cicloLectivo");
	var fechaPublicacion = document.getElementById("fechaPublicacion");	
	var tipoNotificacion = document.getElementById("tipoNotificacion");	
	var titulo = document.getElementById("titulo");	
	var descripcion = document.getElementById("descripcion");
	var archivo = document.getElementById("archivo");
	var estado = document.getElementById("estado");
	
	//var destinatarios = document.getElementById("destinatarios");	
	var cantDestinatarios = $('#destinatarios option').length;
	
	//alert("Prueba");
					
	if(cicloLectivo.value!="0" && fechaPublicacion.value!="" && tipoNotificacion.value!="0" && titulo.value!="" && cantDestinatarios>=1){
		//Enviamos el formulario al servidor para que se procese la transaccion
		var formulario = document.getElementById("formNotificacion");
		formulario.submit();
		
		//Inicializamos todos campos a vacios.
		tipoNotificacion.value = "0";	
		titulo.value = "";
		descripcion.value = "";
		archivo.value="";
		estado.value="1";
		
		alcanceGeneral.value="0";
		alcanceParticular.value="0";	
		$('#alcanceParticular').html('');
		$('#alcanceParticular').append('<option value="0">Seleccionar</option>');
		$('#destinatarios').html('');
			
		//Si habia algun campo marcado como incompleto lo ponemos a la normalidad		
		$("#campoCicloLectivo").removeClass("has-error");
		$("#campoFechaPublicacion").removeClass("has-error");
		$("#campoTipoNotificacion").removeClass("has-error");
		$("#campoTitulo").removeClass("has-error");
		
		$("#campoDestinatarios").removeClass("has-error");
		$("#campoAlcanceGeneral").removeClass("has-error");
		$("#campoAlcanceParticular").removeClass("has-error");
		
		//Muestro la pantalla principal
		$("#cuerpoPrincipal").removeClass("in active");
		$("#cuerpoDestinatarios").removeClass("in active");
		
		$("#tabPrincipal").removeClass("active");
		$("#tabDestinatarios").removeClass("active");
		
		$("#cuerpoPrincipal").addClass("in active");
		$("#tabPrincipal").addClass("active");
				
		//Le damos el foco al primer campo a completar
		$("#tipoNotificacion").focus();
	}else{
		alert("Por favor, ingrese todos los datos de la notificaci\u00f3n que desea crear.");
		
		//Marcamos todos los campos imcompletos para que sea mas facil de visualizar.
		if(cicloLectivo.value == "0") $("#campoCicloLectivo").addClass("has-error"); else $("#campoCicloLectivo").removeClass("has-error");
		if(fechaPublicacion.value == "") $("#campoFechaPublicacion").addClass("has-error"); else $("#campoFechaPublicacion").removeClass("has-error");
		if(tipoNotificacion.value == "0") $("#campoTipoNotificacion").addClass("has-error"); else $("#campoTipoNotificacion").removeClass("has-error");
		if(titulo.value == "") $("#campoTitulo").addClass("has-error"); else $("#campoTitulo").removeClass("has-error");
		
		if(cantDestinatarios == 0) $("#campoDestinatarios").addClass("has-error"); else $("#campoDestinatarios").removeClass("has-error");
		
		//Abrimos el tab donde esta alojado el error para que se vea claramente.
		if(cantDestinatarios == 0){
			$("#cuerpoPrincipal").removeClass("in active");
			$("#cuerpoDestinatarios").removeClass("in active");
			
			$("#tabPrincipal").removeClass("active");
			$("#tabDestinatarios").removeClass("active");
			
			$("#cuerpoDestinatarios").addClass("in active");
			$("#tabDestinatarios").addClass("active");
		}
		
		if(cicloLectivo.value == "0" || fechaPublicacion.value=="" || tipoNotificacion.value=="0" || titulo.value==""){
			$("#cuerpoPrincipal").removeClass("in active");
			$("#cuerpoDestinatarios").removeClass("in active");
			
			$("#tabPrincipal").removeClass("active");
			$("#tabDestinatarios").removeClass("active");
			
			$("#cuerpoPrincipal").addClass("in active");
			$("#tabPrincipal").addClass("active");
		}	
	}
}

//Este metodo se llama cuando se tiene que modificar una notificacion
function modificarNotificacion(){
	var fechaPublicacion = document.getElementById("fechaPublicacion");	
	var tipoNotificacion = document.getElementById("tipoNotificacion");	
	var titulo = document.getElementById("titulo");	
	var descripcion = document.getElementById("descripcion");
	var archivo = document.getElementById("archivo");
	var estado = document.getElementById("estado");
	
	//var destinatarios = document.getElementById("destinatarios");	
	var cantDestinatarios = $('#destinatarios option').length;
					
	if(fechaPublicacion.value!="" && tipoNotificacion.value!="0" && titulo.value!="" && cantDestinatarios>=1){
		//Enviamos el formulario al servidor para que se procese la transaccion
		var formulario = document.getElementById("formNotificacion");
		formulario.submit();
		
		//Inicializamos todos campos a vacios.
		archivo.value="";
				
		alcanceGeneral.value="0";
		alcanceParticular.value="0";
		$('#alcanceParticular').html('');
		$('#alcanceParticular').append('<option value="0">Seleccionar</option>');
					
		//Si habia algun campo marcado como incompleto lo ponemos a la normalidad		
		$("#campoFechaPublicacion").removeClass("has-error");
		$("#campoTipoNotificacion").removeClass("has-error");
		$("#campoTitulo").removeClass("has-error");
		
		$("#campoDestinatarios").removeClass("has-error");
		$("#campoAlcanceGeneral").removeClass("has-error");
		$("#campoAlcanceParticular").removeClass("has-error");
								
		//Le damos el foco al primer campo a completar
		$("#tipoNotificacion").focus();
	}else{
		alert("Por favor, ingrese todos los datos de la notificaci\u00f3n que desea modificar.");
		
		//Marcamos todos los campos imcompletos para que sea mas facil de visualizar.
		if(fechaPublicacion.value == "") $("#campoFechaPublicacion").addClass("has-error"); else $("#campoFechaPublicacion").removeClass("has-error");
		if(tipoNotificacion.value == "0") $("#campoTipoNotificacion").addClass("has-error"); else $("#campoTipoNotificacion").removeClass("has-error");
		if(titulo.value == "") $("#campoTitulo").addClass("has-error"); else $("#campoTitulo").removeClass("has-error");
		
		if(cantDestinatarios == 0) $("#campoDestinatarios").addClass("has-error"); else $("#campoDestinatarios").removeClass("has-error");
		
		//Abrimos el tab donde esta alojado el error para que se vea claramente.
		if(cantDestinatarios == 0){
			$("#cuerpoPrincipal").removeClass("in active");
			$("#cuerpoDestinatarios").removeClass("in active");
			
			$("#tabPrincipal").removeClass("active");
			$("#tabDestinatarios").removeClass("active");
			
			$("#cuerpoDestinatarios").addClass("in active");
			$("#tabDestinatarios").addClass("active");
		}
		
		if(fechaPublicacion.value=="" || tipoNotificacion.value=="0" || titulo.value==""){
			$("#cuerpoPrincipal").removeClass("in active");
			$("#cuerpoDestinatarios").removeClass("in active");
			
			$("#tabPrincipal").removeClass("active");
			$("#tabDestinatarios").removeClass("active");
			
			$("#cuerpoPrincipal").addClass("in active");
			$("#tabPrincipal").addClass("active");
		}	
	}
}